package 字符串.easy;

/**
 * @author Lw中
 * @date 2020/8/19 9:38
 */
public class SiYiWu {

    public static String addStrings(String num1, String num2) {
        StringBuffer res = new StringBuffer("");
        int i = num1.length() - 1;
        int j = num2.length() - 1;
        int carry = 0;
        while (i >= 0 || j >=0) {
            // 将字符串各个位上的字符转换为整型
            int n1 = i >= 0 ? num1.charAt(i) - '0' : 0;
            int n2 = j >= 0 ? num2.charAt(j) - '0' : 0;
            int tmp = n1 + n2 + carry;
            // 判断是否需要进位，有则carry=1，无则carry = 0
            carry = tmp / 10;
            // 将各个位上的数拼接成字符串
            res.append(tmp % 10);
            i--;
            j--;
        }
        // 如果两数之和的最高位需要进一，那么StringBuffer在拼接个1
        if(carry == 1) {
            res.append(1);
        }
        // 返转字符串
        return res.reverse().toString();
    }

    public static void main(String[] args) {
        String s = addStrings("1233", "1");
        System.out.println(s);
    }

}
